Open Multi-Processing (OpenMP) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming on various architectures, including Unix and Microsoft Windows platforms. In OpenMP, variables for which we only want to have one copy, but which need to be modifiable by all processors may be referred to as “reduction variables”. For example, a loop for calculating a sum of each entry of a vector into a variable called SUM may specify the variable SUM as a reduction variable.